Population dynamics in the OECS

A review of United Nations population forecast

Population
Economic development
Author

Janai Leonce

Published

February 20, 2024

1 Introduction1

Some years ago while working on a project I recall noting the sharp decline in the number of students enrolled in primary school in Saint Lucia. In academic year 1995/96 the number of pupils enrolled was 31,372 and by 2019/20 it had fallen to 14,5522. Fast forward a few weeks ago and the New York Times ran an article entitled The World’s Population May Peak in Your Lifetime. What Happens Next?. That article essentially suggested that significant population decline may be a reality over the next few decades and that the socio-economic ramifications of this needs to be studied now. That in turn got me thinking and I wondered what are the estimates, population wise, for Saint Lucia and possibly the Caribbean. In order to answer that question I turned to the United Nations Population Division’s3 databases. The division publishes a World Population Prospects Report which discusses population trends and as an accompaniment provides population estimates4 and projections5 for all countries. Underpinning the report are national population censuses and mathematical formulas to project and estimate demographic trends. Of interest to me were the population projections, which are done based on assumptions surrounding fertility rates, mortality and international migration expectations for each country6 (resulting in several projection scenarios7).

The UN’s primary projection (forward looking) scenario is called the “medium scenario” which per the UN is where8:

“..probabilistic methods were used to reflect the uncertainty of the projections based on the historical variability of changes in each variable. The method takes into account the past experience of each country, while also reflecting uncertainty about future changes based on the past experience of other countries under similar conditions.  The medium scenario projection corresponds to the median of several thousand distinct trajectories of each demographic component derived using the probabilistic model of the variability in changes over time.

In simplest terms this is essentially the “most likely” or default scenario used in their reporting on population trends. Ten variations to this scenario exist and these largely center on different assumptions (different relative to the medium scenario) for fertility rates and other factors which influence demographic outcomes. See the extract below for an overview;

UN Population Projection Assumptions

Over the next few charts join me as I explore what the UN’s population projections look like for Saint Lucia, and what, if any, are the implications for our socio-economic development. In this blog post we’ll focus primarily on the results of the “medium scenario” referenced above and for some context will show what the outcomes of a few of the other scenarios look like.

2 Fertility rates in the region

One of the most striking observations as I combed through the data was the changes in the estimated ’actual’ fertility rates i.e historical rates. When we look at Figure 1 we see both the significant level of compression i.e. how the rate of divergence across countries has shrunk and secondly, the collapse of fertility rates across every single peer country.

Code
#plot the fertility rate for all countries

chart_fertility <- constant_pivot |> 
  filter(Indicators=='Total Fertility Rate (live births per woman)') |> 
  ggplot(aes(x=Years, y=Values, color=`Region, subregion, country or area *`))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Fertility rates in the OECS and CARICOM',
       subtitle = 'Annual estimates from 1950 to 2022',
       y='Total Fertility Rate (live births per woman)',
       color='',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "8 years", 
           limits = as.Date(c('1/1/1950','1/1/2022'), format="%d/%m/%Y"),
           date_labels="%Y" )+
  theme(axis.title.y = element_text(color = "black",size = 9))

chart_fertility
Figure 1: Fertility rates in select Caribbean Countries

2.1 Fertility rates historical : 1950 to 2022

Attempting to distill the historical average into an average (see Figure 2 ) shows that historically (1950-2022), most countries were well above the replacement rate of 2.19 with St. Vincent and the Grenadines leading the way at 4.1.

Code
#plot the fertility rate for all countries


chart_fertility_avg <- constant_pivot |> 
  filter(lubridate::year(Years) %in% c(1950:2022)) |> 
  filter(Indicators=='Total Fertility Rate (live births per woman)') |>
  group_by(`ISO3 Alpha-code`) |> 
  summarise_all(mean) |> 
  ggplot(aes(x=`ISO3 Alpha-code`, y=Values))+
  geom_col()+
  geom_text(aes(label = scales::comma(Values, accuracy = 0.01) ), vjust=1.5, color='white')+
  labs(title = 'Fertility rates in select Caribbean countries',
       subtitle = 'Annual average 1950 to 2022',
       y="Total Fertility Rate (live births per woman)",
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  theme(axis.title.y = element_text(color = "black",size = 9))
  
chart_fertility_avg
Figure 2: Fertility rates in select Caribbean Countries

2.2 Fertility rates recent : 2012 to 2022

The averages however in Figure 2 were largely due to developments in the 1960’s, and 1970’s and when we look at the average fertility rate over a most more recent time horizon as in Figure 3 we see an entirely different picture with most countries having fertility rates well below replacement, with the exception of Grenada. It’s worth noting that Saint Lucia has the lowest rate at 1.45.

Code
#plot the fertility rate for all countries


chart_fertility_10yrs <- constant_pivot |> 
  filter(lubridate::year(Years) %in% c(2012:2022)) |> 
  filter(Indicators=='Total Fertility Rate (live births per woman)') |>
  group_by(`ISO3 Alpha-code`) |> 
  summarise_all(mean) |> 
  ggplot(aes(x=`ISO3 Alpha-code`, y=Values))+
  geom_col()+
  geom_text(aes(label = scales::comma(Values, accuracy = 0.01) ), vjust=1.5, color='white')+
  labs(title = 'Fertility rates in select Caribbean countries',
       subtitle = 'Annual average 2012 to 2022',
       y='Total Fertility Rate (live births per woman)',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
    scale_y_continuous(labels = scales::comma)+
    theme(axis.title.y = element_text(color = "black",size = 9))
  
chart_fertility_10yrs
Figure 3: Fertility rates in select Caribbean Countries (last 10 years)

3 Disparity between UN fertility projections

Earlier we mentioned that the UN has multiple projection scenarios. To give some context before we delve deeper into population projections Figure 4 shows the upper and lower bands of “medium” and “low” total fertility rate assumptions along our basket of Caribbean countries.

Code
#plot the fertility rate for all countries

chart_fertility_cont_low <- merge_all_pivot |> 
  filter(Indicators=='Total Fertility Rate (live births per woman)_medium'|
         Indicators=='Total Fertility Rate (live births per woman)_low') |> 
  ggplot(aes(x=Years, y=Values, color=Indicators))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Fertility rates in select Caribbean countries',
       subtitle = 'Showing medium and low fertility rate assumptions',
       y='Total Fertility Rate (live births per woman)',
       color='',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "16 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
  theme(axis.title.y = element_text(color = "black",size = 9))

chart_fertility_cont_low+scale_color_discrete(labels=c("Low total fertility rate assumptions","Medium total fertility rate assumptions"))
Figure 4: Fertility rates in select Caribbean Countries Low Estimates

Figure 4 show that the lowest fertility rate assumption has forward looking projects well below 2 per live births per woman while the medium scenario assumes a slightly higher rate of just under 2. We ll examine the implications of these assumptions in the charts below.

4 Saint Lucia’s Population Projections

Figure 5 and Figure 6 paint a sobering picture for Saint Lucia’s population. In 3 of the 4 scenarios shown Saint Lucia’s population declines and in the highest assumption for fertility the population is not much higher than the 2022 estimates of ~[180,000]. These estimates will be reviewed by the UN soon and I suspect will change significantly once the 2020/2022 Census is revealed. It is interesting to note that the population is expected to peak in 2037/38 which logically is consistent with the fact that the death rate is expected to exceed the birth rate at that time.

Code
#plot the fertility rate for all countries

chart_slu_pop <- merge_all_pivot |> 
  filter(Indicators=='Total Population, as of 1 July (thousands)_const'|
         Indicators=='Total Population, as of 1 July (thousands)_high'|
         Indicators=='Total Population, as of 1 July (thousands)_low'|
         Indicators=='Total Population, as of 1 July (thousands)_medium',
         `Region, subregion, country or area *`=='Saint Lucia'
         ) |> 
  ggplot(aes(x=Years, y=Values, color=Indicators))+
  geom_line(size=1.0, alpha=0.8)+
  labs(title = 'Population estimates for Saint Lucia',
       subtitle = 'Based on several population projection scenarioes',
       color=" ",
       y="Total Population (000's)",
       caption = 'Source: United Nations Population Database')+
  scale_y_continuous(labels = scales::comma)+
  scale_x_continuous(limits = c(0,200),
                       breaks = seq(0,200, by=10))+
  scale_x_date(date_breaks = "12 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
  theme_fivethirtyeight()+
  theme(axis.title.y = element_text(color = "black",size = 9))

chart_slu_pop+scale_color_discrete(labels=c("Constant","High", "Low","Medium"))
Figure 5: Population estimates for Saint Lucia

Earlier we mentioned that Grenada had relatively high rate of fertility over the 2012 to 2022 period. If we compare Figure 6 to Figure 5 we see the direct consequence of this with 3 of the 4 scenarios in Grenada showing increases and or marginal declines relative to 2022 levels. So much so that Saint Lucia’s and Grenada’s population in the medium scenario will be roughly the same by 2100. This is particularly striking given that Saint Lucia’s population as at the 2022 estimate stood at just over 175,000 while Grenada’s is approximately 130,000.

Code
#plot the fertility rate for all countries

chart_gre_pop <- merge_all_pivot |> 
  filter(Indicators=='Total Population, as of 1 July (thousands)_const'|
         Indicators=='Total Population, as of 1 July (thousands)_high'|
         Indicators=='Total Population, as of 1 July (thousands)_low'|
         Indicators=='Total Population, as of 1 July (thousands)_medium'   ,
          `Region, subregion, country or area *`=='Grenada' 
         ) |> 
  ggplot(aes(x=Years, y=Values, color=Indicators))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Population estimates for Grenada',
       subtitle = 'Based on several population projection scenarioes',
       y="Total Population (000's)",
       color='',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "12 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
     theme(axis.title.y = element_text(color = "black",size = 9))

chart_gre_pop+scale_color_discrete(labels=c("Constant","High", "Low","Medium"))
Figure 6: Population estimates for Grenada

While the figures above for Saint Lucia may be striking, Figure 7 and Figure 8 help explain whats going on. In Figure 7 we see that Saint Lucia’s death rate per 1,000 persons exceeds that of births per 1,000 by 2027/28 while Grenada appears to avoid this fate with the death rate per 1,000 slightly kiexceeding the birth rate only after 2062.

Code
#plot the fertility rate for all countries

chart_slu_death_rates <- merge_all_pivot |> 
  filter(Indicators=="Crude Death Rate (deaths per 1,000 population)_medium"|
         Indicators=="Crude Birth Rate (births per 1,000 population)_medium", 
          `Region, subregion, country or area *`=='Saint Lucia'
         ) |> 
  ggplot(aes(x=Years, y=Values, color=Indicators))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Saint Lucia death and birth rate projections',
       subtitle = "Based on the UN's 'medium projection scenario'",
       y="Crude Birth/Death Rate (per 1,000 population)",
       color='',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "12 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
     theme(axis.title.y = element_text(color = "black",size = 9))

chart_slu_death_rates+  scale_color_discrete(labels=c("Medium scenario birth rate","Medium scenario death rate"))
Figure 7: Death and birth rate estimates for Saint Lucia

Note the uptick and decline in the death rate due to COVID-19 in 2020/21.

Code
#plot the fertility rate for all countries
chart_gre_death_rates <- merge_all_pivot |> 
  filter(Indicators=="Crude Death Rate (deaths per 1,000 population)_medium"|
         Indicators=="Crude Birth Rate (births per 1,000 population)_medium", 
          `Region, subregion, country or area *`=='Grenada'
         ) |> 
  ggplot(aes(x=Years, y=Values, color=Indicators))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Grenada death and birth rate projections',
       subtitle = "Based on the UN's 'medium projection scenario'",
       y="Crude Birth/Death Rate (per 1,000 population)",
       color='',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "12 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
   theme(axis.title.y = element_text(color = "black",size = 9))

chart_gre_death_rates+scale_color_discrete(labels=c("Medium scenario birth rate","Medium scenario death rate"))
Figure 8: Death and birth rate estimates for Grenada

The consequences of these developments is that Saint Lucia (see Figure 9 ) will have one of the highest median ages in the region by 2100.

Code
#plot the fertility rate for all countries
chart_median_age <- merge_all_pivot |> 
  filter(Indicators=="Median Age, as of 1 July (years)_medium", 
          `Region, subregion, country or area *`=='Grenada'|
          `Region, subregion, country or area *`=='Saint Lucia'|
          `Region, subregion, country or area *`=='Antigua and Barbuda'|
          `Region, subregion, country or area *`=='Barbados'|
           `Region, subregion, country or area *`=='Jamaica'|
           `Region, subregion, country or area *`=='Dominica'|
           `Region, subregion, country or area *`=='Saint Vincent and the Grenadines'|
           `Region, subregion, country or area *`=='Trinidad and Tobago'
         ) |> 
  ggplot(aes(x=Years, y=Values, color= `Region, subregion, country or area *`))+
  geom_line(size=1.5, alpha=0.8)+
  labs(title = 'Grenada ,Saint Lucia and Select Peers Median Age',
       subtitle = "Based on the UN's 'medium projection scenario'",
       y='Median age',
       color=" ",
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_y_continuous(labels = scales::comma)+
  scale_x_date(date_breaks = "12 years", 
           limits = as.Date(c('1/1/1950','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
   theme(axis.title.y = element_text(color = "black",size = 9),   legend.title  = element_text(color = "black",size = 9))


chart_median_age 
Figure 9: Median ages estimates for select Caribbean countries

4.1 Saint Lucia Population Pyramids

In addition to population projections, we can also go a step further and assess what the population pyramids10 look like now and in the future. Figure 10 shows the 2022 estimated pyramid.

Code
chart_pop_slu_age <- constant_age_clean |> 
  filter(Year==2022) |> 
  mutate(
    population = ifelse(Gender=="Male", Population_Projection*(-1),
                        Population_Projection*1))%>%
    ggplot(aes(x = Age,y =population , fill=Gender)) + 
    geom_bar(stat = "identity") +
    coord_flip()+
    scale_y_continuous(limits = c(-2,2), 
                       breaks = seq(-2, 2, by = 0.5))+
    scale_x_continuous(limits = c(0,100),
                       breaks = seq(0,100, by=10))+
     labs(title = 'Saint Lucia Population Pyramid',
       subtitle = "Based on the UN's 'constant fertility rate projection scenario'",
       x='Age',
       y="Population in (000's)",
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
   theme(axis.title.x = element_text(color = "black",size = 9),
       axis.title.y = element_text(color = "black",size = 9),
       legend.title  = element_text(color = "black",size = 9))
chart_pop_slu_age
Figure 10: Population pyramid for Saint Lucia 2022

While Figure 11 shows the 2100 pyramid which has a narrow base and a heavy top, which is indicative of the low dependency rate shown in Figure 12.

Code
chart_pop_slu_age_100 <- constant_age_clean |> 
  filter(Year==2100) |> 
  mutate(
    population = ifelse(Gender=="Male", Population_Projection*(-1),
                        Population_Projection*1))%>%
    ggplot(aes(x = Age,y =population , fill=Gender)) + 
    geom_bar(stat = "identity") +
    coord_flip()+
    scale_y_continuous(limits = c(-1,1), 
                       breaks = seq(-1, 1, by = 0.25))+
    scale_x_continuous(limits = c(0,100),
                       breaks = seq(0,100, by=10))+
      labs(title = 'Saint Lucia Population Pyramid',
       subtitle = "Based on the UN's 'constant fertility rate projection scenario'",
       y="Population in (000's)",
       x='Age',
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  theme(axis.title.x = element_text(color = "black",size = 9),
       axis.title.y = element_text(color = "black",size = 9),
       legend.title  = element_text(color = "black",size = 9))

chart_pop_slu_age_100
Figure 11: Population pyramid for Saint Lucia 2100

5 What are the implications of population decline?

Figure 12 shows one of the most obvious implications of the aforementioned population dynamics as it looks at the dependency ratio, i.e, the number of working age adults (15- 65) relative to persons under the age of 15 and over 65 (dependents). We see that this number will drop from roughly 2.4 in 2022 to just over 1.1 in the next few decades meaning that the ratio will almost equalise. The debate11 12 on the implications of these and other statistics is mixed and we highlight a few of them here;

Negative effects of a declining population

  • Reduce economic growth on account of lower levels of demand,

  • Lower or reduced levels of innovation,

  • Rising medical expenditures associated with the provision of end of life care and

  • Issues with funding pension and social security type programs which require workers to continually contribute.

Positive13 effects of a declining population

  • An indicative sign of female progress and proxy for higher educational attainment of women,

  • Reduced need for government spending and an ability to channel the resulting savings to high yield investments and

  • Reduced greenhouse gases/ carbon emissions.

While the debate on the implications of population decline is expected to continue there is some consensus on what can be done to improve fertility levels and thereby population;

  • stronger child care interventions,

  • improved paternal and maternal regimes and

  • policy interventions which build a strong eco-system to support parents and caregivers.

Code
chart_depend_ratio <- medium_dependancy_pivot |> 
    filter(Indicators=="Annual total dep. ratio [(0-14 & 65+) / 15-64] (%)",
           `Region, subregion, country or area *`=="Saint Lucia"|
             `Region, subregion, country or area *`=="Grenada") |> 
  mutate(depend=(1/Value)*100) |> 
    ggplot(aes(x = Years,y =depend , color=`Region, subregion, country or area *`)) + 
      geom_line(size=1.5, alpha=0.8)+
      labs(title = 'Dependency ratios in the Caribbean',
       subtitle = 'Under a medium scenario: [(0-14 & 65+) / 15-64]',
       y="# per dependent",
       caption = 'Source: United Nations Population Database')+
  theme_fivethirtyeight()+
  scale_x_date(date_breaks = "6 years", 
           limits = as.Date(c('1/1/2022','1/1/2100'), format="%d/%m/%Y"),
           date_labels="%Y" )+
  theme(axis.title.x = element_text(color = "black",size = 9),
       axis.title.y = element_text(color = "black",size = 9),
       legend.title  = element_text(color = "black",size = 9))



chart_depend_ratio
Figure 12: Dependency ratio for select Caribbean countries

6 Conclusion

In this months issue we’ve spoke about Saint Lucia’s population dynamics and compared it to other islands in the Caribbean. Saint Lucia’s population in the best case scenario expected to remain at current levels (170,000 to 180,000) while under medium assumptions is projected to decline significantly. A declining population has economic and social implications that need to be studied, while some posit that the adverse effects of lower populations can be offset by technological and other advances research is needed to ascertain where this is the case for SIDS given our resource constraints and minimal uses of technology.